/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年9月12日
 * 项目： p2p-taikongma
 */
package com.rainhy.webcore.token.context;

import java.util.Enumeration;

/**
 * Token
 * 
 * @author rain
 * @version [版本号, 2016年9月12日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public interface Token {
    
    /** context */
    TokenContext getTokenContext();
    
    /** 持久化参数 */
    Object getAttribute(String name);
    
    /** 持久化参数 */
    Enumeration<String> getAttributeNames();
    
    /** token 创建时间 */
    long getCreationTime();
    
    /** tokenid */
    String getId();
    
    /** 最后授权时间 */
    long getLastAccessedTime();
    
    /** 超时时间,单位:毫秒 */
    long getMaxInactiveInterval();
    
    /** token 失效,同时清空参数 */
    void invalidate();
    
    /** 是否是新建的token */
    boolean isNew();
    
    /** 删除参数 */
    void removeAttribute(String name);
    
    /** 设置参数 */
    void setAttribute(String name, Object value);
    
    /** 超时时间,单位:毫秒 */
    void setMaxInactiveInterval(long interval);
}
